package net.yegong.util;

/**
 * 
 * The Tuple factory which can invoke the corresponding tuple constructor.
 * @author cooper
 * 
 */
public final class Tuple {
	
	private Tuple(){
	}

	public static <U, V, W> Tuple3<U, V, W> tuple(U u, V v, W w) {
		return new Tuple3<U, V, W>(u, v, w);
	}

	public static <U, V, W, X> Tuple4<U, V, W, X> tuple(U u, V v, W w, X x) {
		return new Tuple4<U, V, W, X>(u, v, w, x);
	}

	public static <U, V, W, X, Y> Tuple5<U, V, W, X, Y> tuple(U u, V v, W w, X x, Y y) {
		return new Tuple5<U, V, W, X, Y>(u, v, w, x, y);
	}
}
